A Tutorial Introduction to CSP in Unifying Theories of Programming
نویسندگان
چکیده
In their Unifying Theories of Programming, Hoare & He use the alphabetised relational calculus to give denotational semantics to a wide variety of constructs taken from different programming paradigms. We give a tutorial introduction to the semantics of CSP processes. We start with a summarised introduction of the alphabetised relational calculus and the theory of designs, which are precondition-postcondition specifications. Afterwards, we present in detail a theory for reactive processes. Later, we combine the theories of designs and reactive processes to provide the model for CSP processes. Finally, we compare this new model with the standard failures-divergences model for CSP.
منابع مشابه
A Tutorial Introduction to Designs in Unifying Theories of Programming
In their Unifying Theories of Programming (UTP), Hoare & He use the alphabetised relational calculus to give denotational semantics to a wide variety of constructs taken from different programming paradigms. A key concept in their programme is the design: the familiar precondition-postcondition pair that describes the contract between a programmer and a client. We give a tutorial introduction t...
متن کاملUnifying Theories of Programming in Isabelle
This is a tutorial introduction to the two most basic theories in Hoare & He’s Unifying Theories of Programming and their mechanisation in the Isabelle interactive theorem prover. We describe the theories of relations and of designs (pre-postcondition pairs), interspersed with their formalisation in Isabelle and example mechanised proofs.
متن کاملFocusing on Traces to Link VCR and CSP
View-Centric Reasoning (VCR) replaces CSP’s [1] perfect observer with multiple, possibly imperfect observers. To employ view-centric reasoning within existing CSP models [2] requires a bookkeeping change. Specifically, VCR [3] introduces parallel events as a new primitive for constructing traces, and distinguishes two types of traces: histories and views. Previously, we gave the operational sem...
متن کاملUTP by Example: Designs
We present a tutorial introduction to the semantics of a basic nondeterministic imperative programming language in Unifying Theories of Programming (UTP). First, we give a simple relational semantics that accounts for a theory of partial correctness. Second, we give a semantics based on the theory of precondition-postcondition pairs, known in UTP as designs. This paper should be read in conjunc...
متن کاملThe Miracle of Reactive Programming
Reactive miracles are rather unexplored in Unifying Theories of Programming. We present two simple properties: prefixing a miracle with an event, and offering an external choice between a process and a miracle. Both are strange processes, each violating an important axiom of the standard failures-divergences model for CSP.
متن کامل